/*
 *  Copyright 2010 nicolasger.
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */
package com.ineatconseil.yougo.wicket.ui.admin.panel;

import com.ineatconseil.yougo.wicket.bo.SortableRequestTypeProvider;
import com.ineatconseil.yougo.wicket.bo.TypeDemande;
import com.ineatconseil.yougo.wicket.ui.common.PanelHelper;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model;

/**
 *
 * @author nicolasger
 */
public class GererTypesDemandes extends Panel {

	private static final long serialVersionUID = 1L;

	public GererTypesDemandes(String id) {
		super(id);
		setOutputMarkupId(true);

		add(new Label("gererTypesDemandesTitle", "Types de demande"));

		IndicatingAjaxLink addTypesDemandes = new IndicatingAjaxLink("addTypesDemandesLink") {

			private static final long serialVersionUID = 1L;

			@Override
			public void onClick(AjaxRequestTarget target) {
				PanelHelper.getInstance().replaceEmptyPanel(this.getParent(), target, new TypeCRUD("panel", TypeDemande.class));
			}
		};
		addTypesDemandes.add(new Label("addTypesDemandesLinkMsg", "Ajouter un type de demande"));
		add(addTypesDemandes);
		addDataTable();

	}

	private void addDataTable() {
		IColumn[] columns = new IColumn[2];
		columns[0] = new PropertyColumn(new Model("id"), "id", "id");
		columns[1] = new PropertyColumn(new Model("description"), "description", "description");
		SortableRequestTypeProvider stdp = new SortableRequestTypeProvider();
		DataTable dataTable = new DataTable("dataTable", columns, stdp, 2); // le dernier paramètre est le nombre de lignes par page
		dataTable.addBottomToolbar(new NavigationToolbar(dataTable));
		dataTable.addTopToolbar(new HeadersToolbar(dataTable, stdp));
		add(dataTable);
	}
}
